home *** CD-ROM | disk | FTP | other *** search
- .8086
-
- ASSUME CS:CODE,DS:CODE
- CODE SEGMENT
-
- ORG 0100H
-
- START: CALL ZPR
- DB 'Switch.com 第1.10版 by しんき',0DH,0AH
- DB ' 機能:押下ボタンに応じたエラーレベルを戻す',0DH,0AH,0AH
- DB ' errorlevel==0 → 何も押されていない',0DH,0AH
- DB ' 1 → トリガA',0DH,0AH
- DB ' 2 → トリガB',0DH,0AH
- DB ' 3 → RUN',0DH,0AH
- DB ' 4 → SELECT',0DH,0AH,0AH
- DB ' 戻り値 = ',00
-
- MOV CL,4 ; 戻り値 ( ボタンはエラーレベルが高い方優先 )
-
- MOV DX,04D0H ; PAD1 入力レジスタ
- IN AL,DX
- MOV AH,AL ; AH....PAD1
- MOV DX,04D2H ; PAD2 入力レジスタ
- IN AL,DX ; AL....PAD2
- XOR AX,0FFFFH ; ( 入力ビットが 1 になるよう )
-
- MOV BX,00300H ; SELECT
- AND BX,AX
- CMP BX,00300H
- JZ QUIT
- DEC CL
-
- MOV BX,00C00H ; RUN
- AND BX,AX
- CMP BX,00C00H
- JZ QUIT
- DEC CL
-
- MOV BX,02020H ; TRIG-B
- AND BX,AX
- JNZ QUIT
- DEC CL
-
- MOV BX,01010H ; TRIG-A
- AND BX,AX
- JNZ QUIT
- DEC CL
-
- QUIT: MOV AH,02H ; PUTCHAR
- MOV DL,030H
- ADD DL,CL
- INT 21H
- CALL ZPR
- DB 0DH,0AH,0
- MOV AH,4CH
- MOV AL,CL
- INT 21H
-
-
- ; ASCII-Zero 文字列表示 (呼出し直後のメッセージを表示) : AXを破壊
- ZPR: POP AX ;
- PUSH BX
- PUSH DX
- MOV BX,AX ; BX= [文字列]
- ZPR_L1: MOV AH,2 ;Func-No. 2 「PUTCHAR」
- MOV DL,[BX] ;1文字読み込み
- INC BX
- AND DL,DL
- JZ ZPR_L2 ; NULLだったら表示終了
- INT 21H ; 表示
- JMP ZPR_L1 ; まだまだループ
- ZPR_L2: POP DX
- POP AX
- PUSH BX
- MOV BX,AX
- RET
-
-
- CODE ENDS
- END START
-